{extend name="../../base/view/common/base" /}
{block name="style"}
{include file="/approve/add_style" /}
{/block}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-4">
	<h3 class="pb-3">外出审批</h3>
	{eq name="$id" value="0"}
	<table class="layui-table layui-table-form">
		<tr>
			<td class="layui-td-gray-2">外出地点<font>*</font></td>
			<td colspan="3"><input type="text" name="address" value="" autocomplete="off" placeholder="请输入外出地点" lay-verify="required" lay-reqText="请输入外出地点" class="layui-input"></td>
		</tr>
		<tr>
			<td class="layui-td-gray">开始时间<font>*</font></td>
			<td>
				<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
			</td>
			<td class="layui-td-gray">结束时间<font>*</font></td>
			<td>
				<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
			</td>
		</tr>
		<tr>
			<td class="layui-td-gray">外出时长</td>
			<td><input name="duration" value="" class="layui-input" lay-verify="required|number" placeholder="请完善请外出时长" lay-reqText="请完善请外出时长"></td>
			<td class="layui-td-gray">外出天数</td>
			<td id="days">-</td>
		</tr>
		<tr>
			<td class="layui-td-gray">外出事由<font>*</font></td>
			<td colspan="3">
				<textarea name="content" placeholder="请输入外出事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入外出事由"></textarea>
			</td>
		</tr>
		<tr>
			<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
			<td colspan="3" style="line-height:inherit">
				<div class="layui-row" id="fileList">
					<input type="hidden" data-type="file" name="file_ids" value="">
				</div>
			</td>
		</tr>
	</table>
	{else/}
	<table class="layui-table layui-table-form">
		<tr>
			<td class="layui-td-gray-2">外出地点<font>*</font></td>
			<td colspan="3"><input type="text" name="address" value="{$detail.address}" autocomplete="off" placeholder="请输入外出地点" lay-verify="required" lay-reqText="请输入外出地点" class="layui-input"></td>
		</tr>
		<tr>
			<td class="layui-td-gray">开始时间<font>*</font></td>
			<td>
				<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
			</td>
			<td class="layui-td-gray">结束时间<font>*</font></td>
			<td>
				<input type="hidden" name="duration" value="">
				<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
			</td>
		</tr>
		<tr>
			<td class="layui-td-gray">外出时长</td>
			<td><input name="duration" value="{$detail.duration}" class="layui-input" lay-verify="required|number" placeholder="请完善请外出时长" lay-reqText="请完善外出时长"></td>
			<td class="layui-td-gray">外出天数</td>
			<td id="days">共{$detail.days}天,{$detail.hours}小时</td>
		</tr>
		<tr>
			<td class="layui-td-gray">外出事由<font>*</font></td>
			<td colspan="3">
				<textarea name="content" placeholder="请输入外出事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入外出事由">{$detail.content}</textarea>
			</td>
		</tr>
		<tr>
			<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
			<td colspan="3" style="line-height:inherit">
				<div class="layui-row" id="fileList">
					<input type="hidden" name="file_ids" data-type="file" value="{$detail.file_ids}">
					{notempty name="$detail.file_ids"}
					{volist name="$detail.fileArray" id="vo"}
					<div class="layui-col-md4" id="uploadImg{$vo.id}">{:file_card($vo)}</div>
					{/volist}
					{/notempty}
				</div>
			</td>
		</tr>
	</table>
	{/eq}
	{include file="/approve/add_flow" /}
</form>
{/block}
<!-- /主体 -->

<!-- 脚本 -->
{block name="script"}
<script>
/**
 * 工时计算
  */
const WORKDAY_HOURS = 8;
const START_HOUR = 9;
const END_HOUR = 18;
const START_BREAK_HOUR = 12;
const END_BREAK_HOUR = 13;
const WEEKEND_DAYS = [0, 6];

function isWeekend(day) {
  return WEEKEND_DAYS.includes(day);
}

function calculateWorkHours() {
  var startDate = new Date($('#start_time').val());
  var endDate = new Date($('#end_time').val());

  const start = startDate.getTime();
  const end = endDate.getTime();
  const startDay = startDate.getDay();
  const endDay = endDate.getDay();

  let totalHours = 0;

  for (let time = start; time < end; time += 3600000 /* 1 hour in milliseconds */) {
    const date = new Date(time);
    const dayOfWeek = date.getDay();
    const hour = date.getHours();

    if (!isWeekend(dayOfWeek)) {
		if (hour >= START_HOUR && hour < END_HOUR) {
			if (hour < START_BREAK_HOUR || hour >= END_BREAK_HOUR) {
				console.log(totalHours);
				totalHours += 1;
			}
		}
	}
  }
  return totalHours;
}

function isNumber(str, type) {
	var t = type || 0;
	var patn = /^[0-9]+$/;
	if (t > 0) {
		patn = /^\d+(\.\d+)?$/;
	}
	if (!patn.test(str)){
		return false;
	}
	else{
		return true;
	}
}


const moduleInit = ['tool','employeepicker','oaTool'];
	function gouguInit() {
		var form = layui.form,
			tool=layui.tool,
			oaTool=layui.oaTool,
			laydate = layui.laydate;
			
		oaTool.addFile({
			btn: 'upFile',
			box: 'fileList'
		});
	
		if (typeof (flowStep) == "function") {
			flowStep();
		}	
		//日期时间范围
		lay('.select-time').each(function () {
			laydate.render({
				elem: this,
				trigger: 'click',
				fullPanel:true,
				type:'datetime',
				done:function(){
					var hours = calculateWorkHours();
					if(hours == 0){
						$('[name="duration"]').val('');
						$('#days').html('-');
					}
					else{
						$('[name="duration"]').val(hours);
						var days = 0;
						if(hours>=8){
							days = parseInt(hours/8);
						}
						$('#days').html('共'+days+'天，'+(hours%8).toFixed(1)+'小时');
					}					
				}
			});
		});
		
		$('[name="duration"]').on('input',function(){
			let hours = $(this).val();
			if(isNumber(hours,1) && hours>0){
				var days = 0;
				if(hours>=8){
					days = parseInt(hours/8);
				}
				$('#days').html('共'+days+'天，'+((hours%8).toFixed(1))+'小时');
			}
			else{
				$('#days').html('-');
			}			
		})
	}
</script>
{/block}
<!-- /脚本 -->